/**
 * Esta clase tiene un método llamado busquedaBinariaAcend, el cual, Devuelve la
 * posición que ocupa un valor determinado en un array de enteros.
 */
package tools.arrays;

/**
 *
 * @author Félix Marín Ramírez | felixmurcia@gmail.com
 * @version 1.0.1b
 */
public class BuscarValorBusquedaBinaria implements java.io.Serializable {
    
    //MÉTODO QUE BUSCA UN VALOR DETERMINADO EN EL ARRAY. BÚSQUEDA BINARIA.

    /**
     *
     * @param vector Este array de enteros es pasado como argumento desde el
     * main al método busquedaBinariaAscend.
     * @param valorBuscado Valor que se pasa como argumento, el cual será
     * buscado en el array.
     * @return Devuelve la posición que ocupa un valor determinado en un array
     * de enteros.
     */
    public int busquedaBinariaAscend(int vector[], int valorBuscado) {

        int der, izq, centro;
        der = vector.length - 1;
        izq = 0;
        centro = (der + izq) / 2;

        while (izq < der && vector[centro] != valorBuscado) {
            if (vector[centro] > valorBuscado) {
                der = centro - 1;
            }//Fin del if
            else {
                izq = centro + 1;
            }//Fin del else
            centro = (izq + der) / 2;
        }//Fin del while
        if (vector[centro] == valorBuscado) {

            return centro;
        }//Fin del if
        else {
            return -1;
        }//Fin del else
    }//Fin del método busquedaBinariaAscend
}
